#pragma once

#include "ObjectWriterCallbacksDelegate.h"

template<typename T> 
class ObjectWriterCallbacksDelegateInstance :
	public ObjectWriterCallbacksDelegate
{

private: 
	T * m_pTarget;
	CDependencyObject * m_pTemplatedParent;

public: 
	void ObjectWriterCallbacksDelegateInstance(T * pTarget,  CDependencyObject * pTemplatedParent);
	virtual HRESULT OnObjectCreated(const xshared_ptr<XamlQualifiedObject> & qoRoot, const xshared_ptr<XamlQualifiedObject> & qoNewInstance);
	virtual void ~ObjectWriterCallbacksDelegateInstance();
};